The present invention relates to methods and a database for extending the columns in a record.
Permitting disparate database applications to effectively communicate with one another has proved problematic since often each database table will have its own column names which are not compatible with the column names of other external database tables. For example, a relational database table have three columns, a first name column, a middle initial column, and a last name column would not be compatible with a second relational database table having two columns a full name column and an address column. As a result, seamless communication between the database tables cannot occur without developing a customized software application to interface the disparate database tables.
Yet, adding a software application for each disparate database table which is desired to be interfaced is not practical solution. In fact, the quantity of customized software applications, which would need to be developed in order to permit any number of disparate database tables to be interfaced with one another, would be a factorial number. For example, assuming database table one (TB1), database table two (TB2), and master database table (MTB) were all to be interfaced with one another, then the quantity of customized software applications which need to be written would be 3! or 6 (TBxe2x86x92TB2, TB2xe2x86x92TB1, TB1xe2x86x92MTB, MTBxe2x86x92TB1, TB2xe2x86x92MTB, MTBxe2x86x92TB2).
As one skilled in the art will readily appreciate, writing customized software applications to interface disparate database tables is not practical and extremely expensive (e.g., for 4 database tables 4! or 24 customized applications would be required). As a result, other approaches have been attempted such as developing industry standards around data markup languages. These standards may be found in a variety of data formats such as by way of example only, Standard Generalized Markup Language (SGML), Hyper-text Markup Language (HTML), Rich Text Format (RTF), Extensible Markup Language (XML), and the like. Recently, different flavors of XML have emerged such as Extensible Style Sheets Language (XSL), and the like. Although, these data formats and other formats provide guidelines for tagging data content, at present only the XML and XSL standards provide a mechanism for divorcing the procedural description of the data from the descriptive content of the data. For example, a tag inserted into the data such as xe2x80x9c less than bold greater than xe2x80x9d is a procedural tag since it defines how data is to be displayed, whereas a tag inserted into the data such as xe2x80x9c less than last-name greater than xe2x80x9d is a descriptive tag since it defines the content of the data. The more a markup language permits procedural tagging in the data, the more difficult it becomes to extract and use the content of the data effectively. Further, if the data is to be used in a different presentation manner altogether than the ability to acquire only an adequate description of the data content is vital. It is often the case that transactional-based operations (e.g. database to database) are concerned with data content and not data presentation.
Moreover, even with transactional-based standards (XML) and XSL which permit data to be more generically parsed by software applications (i.e. reducing the quantity of customized software applications), often the descriptive tags used to define the data content will not be consistent with an application that desires to interface with the data content. For example, a database table with two columns a full name column and an address column, still cannot effectively interface with a data stream extracted from a database table having three columns a first name column, a middle initial column, and a last name column, when the extracted data uses descriptive tags which are not recognizable by the database table that is desired to be interfaced. As a result, even industry standards have not alleviated the problem associated with permitting disparate database tables to communicate with one another.
Past attempts to permit disparate database tables to interface with one another rely on the assumption that a target table is required to have prior knowledge about a source table""s columns (e.g. column names and data types) prior to any storage of the initial table""s column data in the target table""s columns. As will be detailed in the description that follows, this prior knowledge by the target table is not only not necessary but not desirable.
Accordingly, an object of the invention is to provide methods and a database for extending the columns in a record. By augmenting the existing columns associated with a record to include one to many additional logical columns which are readily identifiable, disparate database tables may effectively communicate with one another without the need for the development of a multitude of customized software applications. If a data stream is presented to be associated with a target record, wherein identifiable columns within the data stream are not defined in the target record, no attempt is made to identify the columns of the data stream, rather, the data stream is stored in an extended column in the record and processed when necessary (e.g. a user-issued query against the target record for columns identified in the data stream). In this way, a record may be extended with multiple columns without the need to modify the table definition to which the record is associated, thereby permitting a single database table to accept and utilize a plurality of disparate database tables.
Additional objectives, advantages and novel features of the invention will be set forth in the description that follows and, in part, will become apparent to those skilled in the art upon examining or practicing the invention. The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the appended claims. To achieve the foregoing and other objects and in accordance with the purpose of the present invention, methods and a database for extending columns in a record are provided.
A method of extending a single column of a record to support multiple columns is provided, comprising providing a record with one or more columns including an extended column and receiving a tokenized string associated with the extended column. Further one or more token tags are used to logically represent one or more additional columns within the record.
Moreover, a database capable of representing multiple columns from a single column is provided, comprising one or more records, each record having one or more columns and each record having an extended column. A tokenized string is also provided including one or more token tags operable to be received in the extended column for each record, wherein each unique token tag logically represents a new column in each record.
Lastly, a method of warehousing and delivering data is provided, comprising providing one or more records, each record having an extended column, receiving a tokenized string associated with each extended column, wherein the tokenized string includes one or more tags, each tag logically representing an additional column for each record. Further, at least a portion of the tokenized string is delivered upon a request.